home *** CD-ROM | disk | FTP | other *** search
-
- /* well, this is a complete crock of shit too. */
-
- #include "stdio.h"
- #include "types.h"
- #include "stat.h"
-
- char * mktemp(pattern)
- char * pattern;
- {
- char template[64];
- char result[64];
- char * p, * q;
- int tempnum;
- struct stat ignored;
-
- /* first copy the name in, searching for the "XXX..." */
- for (p = pattern, q = (char * )&template ; *p ; p++)
- {
- if (*p == 'X')
- break;
- *q++ = *p;
- }
- *q++ = '%';
- *q++ = 'd';
- while (*p && (*p == 'X'))
- p++;
- /* copy the rest */
- for ( ; *p ; )
- *q++ = *p++;
- *q = '\0';
-
- /* generate the name, but don't try forever if they gave us something
- completely bogus. */
- for (tempnum = 0 ; tempnum < 100 ; tempnum++)
- {
- sprintf(&result, &template, tempnum);
- if (stat(&result, &ignored) != 0)
- break;
- }
- if (tempnum >= 100) /* lost */
- return(0L);
- strcpy(pattern, &result);
- return(pattern);
- }
-